#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int main()
//{
//	int m, n;
//	printf("Enter m,n;");
//	scanf("%d%d", &m, &n);
//	while (m != n) //1
//	{
//		while (m > n) m = m - n; //2
//		while (n > m) n = n - m; //3
//	}
//	printf("m=%d\n", m);
//	return 0;
//}

//int main()
//{
//	char c;
//	int v0 = 0, v1 = 0, v2 = 0;
//		do
//		{
//			switch (c = getchar())
//			{
//			case'a':case'A':
//			case'e':case'E':
//			case'i':case'I':
//			case'o':case'O':
//			case'u':case'U':v1 += 1;
//			default:v0 += 1; v2 += 1;
//			}
//		} while (c != '\n');
//		printf("v0=%d,v1=%d,v2=%d\n", v0, v1, v2);
//		return 0;
//}

//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//
//    while (n--)
//    {
//        char arr[110];
//        scanf("%s", arr);
//        if (arr[0] >= '0' && arr[0] <= '9')
//        {
//            printf("NO\n");
//            continue;
//        }
//
//        int i = 0;
//        int flag1 = 0, flag2 = 0, flag3 = 0, flag4 = 0;
//        int num = 0;
//
//        for (i = 0; arr[i] != '\0'; i++)
//        {
//            num++;
//            if (arr[i] >= 'A' && arr[i] <= 'Z' )
//            {
//                if (flag1 == 0) flag1 = 1;
//            }
//            else if (arr[i] >= 'a' && arr[i] <= 'z')
//            {
//                if (flag2 == 0) flag2 = 1;
//            }
//            else if (arr[i] >= '0' && arr[i] <= '9')
//            {
//                if (flag3 == 0) flag3 = 1;
//            }
//            else
//            {
//                printf("NO\n");
//                flag4 = 1;
//                break;
//            }
//        }
//
//        if (flag4 == 0 && flag1 + flag2 + flag3 >= 2 && num >= 8)
//        {
//            printf("YES\n");
//        }
//        else
//        {
//            printf("NO\n");
//        }
//
//    }
//    return 0;
//}

int* findErrorNums(int* nums, int numsSize, int* returnSize)
{
    int num1 = 0;
    int i = 0;
    for (i = 0; i < numsSize; i++)
    {
        int j = 0;
        int count = 0;
        for (j = 0; j < numsSize; j++)
        {
            if (nums[i] == nums[j])
                count++;
        }
        if (count > 1)
        {
            num1 = nums[i];
            break;
        }
    }

    int sum = 0;
    for (i = 1; i <= numsSize; i++)
    {
        sum ^= i;
        sum ^= nums[i - 1];
    }

    int num2 = sum ^ num1;

    int* ret = (int*)malloc(2 * sizeof(int));
    ret[0] = num1;
    ret[1] = num2;
    *returnSize = 2;

    return ret;
}